/**
 * 位图类，有鼠标事件
 * @author zzhanglin
 * @param bitmapData 图片数据源
 * @returns {Bitmap}
 */
Bitmap = function( bitmapData )
{
	InteractiveObject.call(this);
	this.className="Bitmap";
	this.smooth = false; //图像是否平滑
	this._bitmapData  ; //图像的数据源
	this._currentRect ; //截图图像中的哪部分
	
	if(bitmapData){
		this.setBitmapData(bitmapData);
	}
};
FLASH.extend(Bitmap,InteractiveObject); //继承自InteractiveObject

//=========================================
//================getter/settter===================
Bitmap.prototype.setBitmapData = function( bitmapData ) {
	if(bitmapData){
		this._bitmapData = bitmapData ;
		this.setWidth( bitmapData.getWidth() );
		this.setHeight( bitmapData.getHeight() );
	}
};
Bitmap.prototype.getBitmapData = function(){ return this._bitmapData ; };
//=========================================
/**
 * 输出
 */
Bitmap.prototype.toString = function()
{
	return "type:"+this.className+" - name:"+this.name+" -width:"+this._width+", height:"+this._height ;	
};
/**
 * 释放资源
 */
Bitmap.prototype.dispose = function()
{
	InteractiveObject.prototype.dispose.call(this);
	this._bitmapData = null ;
};

/**
 * 设置显示区域，只显示/截取图片中的一部分显示
 * @param rect
 */
Bitmap.prototype.setShowZone = function (rect)
{
	this._currentRect = rect ;
	this.setWidth(rect.width);
	this.setHeight(rect.height);
};

//=============私有方法=====================
/**
 * 输出
 * @param globalAlpha 
 * @param context
 */
Bitmap.prototype._draw =function( globalAlpha,context )
{
	context.globalAlpha=globalAlpha ;
	context.setTransform( this._worldModelMatrix._a ,this._worldModelMatrix._b,this._worldModelMatrix._c,this._worldModelMatrix._d,
			this._worldModelMatrix._tx,this._worldModelMatrix._ty );
	//是否只输出图片的部分区域
	if(this._currentRect){
		context.drawImage(this._bitmapData._image,this._currentRect.x,this._currentRect.y ,this._currentRect.width, 
				this._currentRect.height,0,0,this._currentRect.width, this._currentRect.height);
	}else{
		context.drawImage(this._bitmapData._image, 0 , 0  );
	}
};